<?php

namespace app\common\model\User;

// 引用tp底层模型
use think\Model;

// 用户模型
class User extends Model
{
    // 定义该模型连的数据表
    protected $table = 'pre_user';

    // 开启自动写入时间戳字段
    protected $autoWriteTimestamp = true;

    // 创建时间字段
    protected $createTime = 'createtime';

    // 关闭自动写入update_time字段
    protected $updateTime = false;

    //追加属性
    // 追加属性
    protected $append = [
        'avatar_cdn',
        'cover_cdn',
        // 'region'
        'sex_text', //性别
        'cover_cdn',  //封面获取器
        //getAvatarCdnAttr
        'avatar_cdn',  //头像获取器 //
        'region', //地区字符串 
    ];

    // 关联方法 省份关联模型
    public function provinces()
    {
        // 第一个关联模型名
        // 第二个 关联外键
        // 第三个 关联主键
        // 第四个 关联别名(已废弃)
        // 第五个 关联方法->关联类型
        return $this->belongsTo('app\common\model\Region', 'province', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    // 市的关联模型
    public function citys()
    {
        return $this->belongsTo('app\common\model\Region', 'city', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    // 区的关联模型
    public function districts()
    {
        return $this->belongsTo('app\common\model\Region', 'district', 'code', [], 'LEFT')->setEagerlyType(0);
    }

    // 获取器 获取年-月-日 get数据表的字段Attr
    public function getCreatetimeAttr($value)
    {
        $createtime = date('Y-m-d', $value);
        return $createtime;
    }
    public function getAvatarCdnAttr($value, $data)
    {
        $cdn = config('cdn');

        return $cdn . $data['avatar'];
    }

    public function getCoverCdnAttr($value, $data)
    {
        $cdn = config('cdn');

        return $cdn . $data['cover'];
    }

    public function getRegionAttr($value, $data)
    {
        $province = model('Region')->where(['code' => $data['province']])->find();
        $city = model('Region')->where(['code' => $data['city']])->find();
        $district = model('Region')->where(['code' => $data['district']])->find();

        $region = [];

        if ($province) {
            $region[] = $province['name'];
        }

        if ($city) {
            $region[] = $city['name'];
        }

        if ($district) {
            $region[] = $district['name'];
        }

        $res = implode('-', $region);

        return $res;
    }
    //增加新字段 sex_text
    public function getSexTextAttr($value, $data) 
    {
        $sexlist = [0 => '保密', 1 => '男', 2 => '女'];
        return $sexlist[$data['sex']];
    }
}
